import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import axios from 'axios'
//代理路径： 可以不直接访问
axios.defaults.withCredentials = true;
axios.defaults.baseURL = '/api';//代理配置相同/api

const instance = axios.create({
  baseURL: '/api',//代理路径？
  timeout: 8000,//请求超时
  headers: {}//请求头
});
// 请求拦截器
instance.interceptors.request.use((config) => {
  // 从 localStorage 获取 adminToken（与登录存储的键名保持一致）
  const token = localStorage.getItem("adminToken");
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }//返回config
  return config
  //添加报错处理
}, (error) => {
  return Promise.reject(error)
}
);
// 响应式拦截器
instance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {//报错处理
    // 登录失败常见场景：401（未授权，token 无效/过期）、403（权限不足）
    if (error.response && error.response.status === 401) {//处理401
      // 清除无效 token，跳转登录页
      localStorage.removeItem("adminToken");
      router.push('/login'); // 假设登录页路由为 /login
      Vue.prototype.$message.error('登录已过期，请重新登录');
    }
    return Promise.reject(error);
  }
);
Vue.prototype.$axios = instance  // 这里改为使用带拦截器的 instance 实例

Vue.config.productionTip = false
Vue.use(ElementUI);

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')